/*!
 *  \file       HighPassFilterGenerator.hpp
 *  \brief      Definizione della classe \c HighPassFilterGenerator
 *  \author     Davide Scola <S2299453@studenti.unige.it>
 *  \author	Minetti Alberto <S3064777@studenti.unige.it>
 *  \version    1.0
 *
 */

#ifndef _HIGH_PASS_FILTER_GENERATOR_H
#define _HIGH_PASS_FILTER_GENERATOR_H

/*!
 *  \brief      Definizione della classe \c HighPassFilterGenerator
 */
template< class tType >
class HighPassFilterGenerator : public IFilterGenerator< tType >
{
  public :
    HighPassFilterGenerator( std::vector< std::complex< tType > > & );
    HighPassFilterGenerator( HighPassFilterGenerator< tType > const& );
    
    virtual HighPassFilterGenerator& operator=( const HighPassFilterGenerator& );
    
    // interface methods
    virtual std::complex< tType > operator() ( std::complex< tType > );
    
  private :
    unsigned long int iIndex_;
    unsigned long int inputSize_;
    unsigned long int cutoffIndex_;
};

#endif              /* _HIGH_PASS_FILTER_GENERATOR_H */
